// pages/goods_detail/index.js

// 渲染商品详情数据
// 点击图⽚，调出图⽚画廊，进⾏预览
// 点击收藏
// 联系客服
// 分享功能
// 加⼊购物⻋

/***
 * 加⼊购物⻋
 * 
 * 1 给购物车按钮绑定点击事件 
 *  怎么判断该购物车有当前的商品？？？
 * 2 加入商品 
 *  2.1  假设 之前的购物车已经有该商品  商品数量加+1 
 *  2.2  假设之前的购物车没有该商品  那么把该商品加入购物车 
 * 3     把购物里面的数据一起带到购物车页面 进行数据渲染 
 *    
 * 
 * 
 * 
 * 点击收藏
 * 
 * 1 判断该商品之前有没有被收藏过 ？？？（缓存里面去判断 一进来就需要判断）
 * 2 如果改商品之前被收藏过 那么星星(收藏图标高亮)
 * 
 * 3 绑定点击事件  
 *   3.1 如果收藏了 取消收藏  收藏图标取消高亮
 *   3.2  如果没收藏  第一次收藏 收藏成功  收藏图标 高亮
 * 
 *  
 * 
 * 
 */



// 引入 我们封装的函数 
import { request } from '../../request/index.js'

import regeneratorRuntime from '../../lib/runtime/runtime';
Page({

  /**
   * 页面的初始数据
   */
  data: {

    detialData: {},
    isCollect:false,// 定义初始收藏标志

  },

  goodsDetial: {},

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let goods_id = options.goods_id
    console.log(goods_id)

    this.getGoodsDetailData(goods_id)

  },



  // 定义获取商品详情数据方法 
  async   getGoodsDetailData(goods_id) {
   //获取数据之前 能不能判断一下 缓存里面有没有收藏这个商品
 





    let res = await request({ url: '/goods/detail', data: { goods_id: goods_id } })
    console.log(res)

    this.goodsDetial = res

    this.setData({
      detialData: res
    })

    let collect =wx.getStorageSync('collect') ||[]
    let isCollect=false
    
    //如果没有这个收藏数组 
   let index= collect.findIndex(v=>v.goods_id==this.goodsDetial.goods_id)
   if(index===-1) { //表示之前没有收藏该商品 
    
   isCollect=false
   this.goodsDetial.isCollect=isCollect,
   collect.push(this.goodsDetial)
   }else  {  //表示之前已经收藏过该商品

  isCollect=collect[index].isCollect
   }
    this.setData({
      isCollect:isCollect

    })
    wx.setStorageSync('collect', collect)
  


    

    




  },

  //实现突破预览功能 
  previewImg(e) {
    //获取是当前图片
    // console.log(e)
    let current = e.currentTarget.dataset.img
    //获取所有图片的的url链接数组
    let urls = this.goodsDetial.pics.map(v => v.pics_big_url)
    console.log(urls)
    console.log(current)



    //图片预览功能
    wx.previewImage({
      current: current, // 当前显示图片的http链接
      urls: urls // 需要预览的图片http链接列表
    })

  },


  //添加到购物车 
  handleCartAdd() {
    wx.showToast({
      title: '加入购物车',
      icon: 'success',
      mask: true
    })
    //加入购物车之前需要判断该商品在不在购物车里面
    let cart = wx.getStorageSync('cart') || []
    console.log(cart)
    let index = cart.findIndex(v => v.goods_id === this.goodsDetial.goods_id)
    // console.log(index)
    if (index === -1) {  //没有该商品     
      //  1 标记当前商品第一次添加 
      // console.log(this.goodsDetial)
      this.goodsDetial.num = 1;
      this.goodsDetial.isCheck=true
      //2 把该商品加入购物车
      cart.push(this.goodsDetial)
    } else {  //之前的购物车数据有该商品
      cart[index].num++
    }
    wx.setStorageSync('cart', cart)  //把添加后的商品重新放人缓存里面
  },

  // 点击收藏  

  collectGoods(e){
    console.log(e)
    let collect =wx.getStorageSync('collect') 
    let goods_id=e.currentTarget.dataset.id
    let index=collect.findIndex(v=>v.goods_id==goods_id)
    let isCollect= collect[index].isCollect
    this.setData({
     isCollect:!isCollect
    })
    let isShow=this.data.isCollect
    if(!isShow) {
      wx.showToast({
        title: '取消收藏成功',
      })
    }else {
      wx.showToast({
        title: '加入收藏成功',
      })
    }

    //第二个地方
     collect[index].isCollect=!collect[index].isCollect  
    wx.setStorageSync('collect', collect)

  }





})